seite.php - standardseite


P H P   -   Personal Home Page

7.   daten bearbeiten

7.1  zeichenketten bearbeiten

Wenn seiten mit PHP aufgebaut werden, ist es sehr häufig notwendig, zeichenketten aufzubereiten. Dafür gibt es viele funktionen. Soweit bei den funktionen als argumente zeichenketten anzugeben sind, können diese auch in variablen angegeben werden.

$erg = strlen($kette); länge einer zeichenkette ermittelt.
$erg = str_repeat("abc", nn); zeichenkette erzeugen mit nn-mal abc

7.1.1  zeichenkette umformen

$erg = strtolower($kette); alles in kleinbuchstaben
$erg = strtoupper($kette); alles in großbuchstaben
$erg = ucfirst($kette); erstes zeichen großbuchstabe
$erg = ucwords($kette); erstes zeichen aller worte als großbuchstabe
$erg = strrev($kette); zeichenkette umdrehen
$erg = strtr($kette, "a", "A"); in der zeichenkette alle a zu A
$erg = strtr($kette, "xy", "AB"); in der zeichenkette alle x oder y zu A oder B
$erg = str_replace("abc", "xy", $kette); in der zeichenkette alle abc zu xy
$erg = trim($kette); entfernt ZWR am anfang und ende von $kette
$erg = ltrim($kette); entfernt ZWR links, d.h. am anfang von $kette
$erg = rtrim($kette); entfernt ZWR rechts, d.h. am ende von $kette

7.1.2  zeichenkette zerlegen / zusammenfügen

$kette = "das;ist;ein;test";

$feld = explode(";", $kette);zerlegt in elemente von $kette, trennzeichen ist ; (strichpunkt). Die teile von $kette werden im feld $feld abgelegt, das ergibt hier:
$feld[0] enthält "das"
$feld[1] enthält "ist" usw.
$kette = implode(".", $feld);fügt die elemente von $feld mit trennzeichen punkt zu $kette zusammen.
Ergebnis: "das.ist.ein.test"
$feld = strsplit($kette, 5);zerlegt $kette in teile mit je 5 zeichen und speichert die teile in $feld.

7.1.3  teil-zeichenketten bilden

$erg = substr($kette, 3 [, 5]); von dem zeichen an position 3 bis zum ende von $kette oder maximal 5 zeichen werden in $erg gespeichert.
$erg = substr($kette, -8 [, 5]); von dem zeichen an position 8 bis zum anfang von $kette oder maximal 5 zeichen werden in $erg gespeichert.
$erg = strstr($kette, "Test" [, true] | false ]); sucht erstes auftreten von "Test" und liefert als ergebnis
ohne zusatz oder mit false: "Test" + rest von $kette
mit true: alles von $kette vor "Test", ohne "Test"
$erg = stristr($kette, "Test" [, true | false ] ); wie funktion strstr, aber groß/klein-schreibung nicht beachten
$erg = strchr($kette, "X"); sucht das erste zeichen X und liefert das zeichen + rest
$erg = strrchr($kette, "X"); sucht das letzte zeichen X und liefert das zeichen + rest
$erg = $kette[5]; liefert das zeichen an position 5, das geht ohne funktion, einfach durch zuweisung

7.1.4  position ermitteln

$erg = strpos($kette, "Test" [, 3]); position von "Test" in $kette, suche von anfang an oder ab position 3. Geliefert wird das erste ergebnis.
$erg = strpos($kette, "Test" , -20); position von "Test" in $kette, suche ab position 20 in richtung anfang. Geliefert wird das erste ergebnis.
$erg = stripos($kette, $such [, $pos]); wie strpos, aber groß/klein-schreibung nicht beachten
$erg = strrpos($kette, "Test" [, 3]); position von "Test" in $kette, suche von anfang an oder ab position 3. Geliefert wird das letzte ergebnis
$erg = strrpos($kette, "Test" , -20); position von "Test" in $kette, suche ab position 20 in richtung anfang. Geliefert wird das letzte ergebnis
$erg = strripos($kette, $such [, $pos]); wie strrpos, aber groß/klein-schreibung nicht beachten

hinweis
Bei den funktionen teil-zeichenketten bilden (außer substr) und position ermitteln enthält das ergebnis eine zeichenkette, einen numerischen wert oder false, wenn kein brauchbares ergebnis geliefert wird. Sichere prüfung des ergebnis mit

if ($erg === false)     ergebnis nicht brauchbar

if ($erg !== false)     ergebnis brauchbar

7.1.5  wordwrap - zeichenkette zerlegen

Die funktion zerlegt eine zeichenkette nach einer wählbaren anzahl von zeichen mit einem zeichen oder einer zeichenkette. Durch eine option kann bestimmt werden, dass worte, die länger sind als die angegebene zeichenlänge zerlegt werden.

$textneu = wordwrap($text, $width, $break, $cut);

$textneu zeichenkette mit dem ergebnis der funktion
$textzeichenkette, die bearbeitet wird
$widthanzahl der zeichen, nach denen die zeichenkette zerlegt wird.
$breakzeichen oder zeichenkette; damit wird die zeichenkette zerlegt.
$cutsteuert die zerlegung
    true worte, die länger sind als $width werden durch $break zerlegt. Folgen worte aufeinander, die zusammen länger als $width sind, wird vor dem folgewort zerlegt.
    false es werden keine worte zerlegt.

achtung
Die funktion hat eine schwäche, wenn die zeichenkette im Unicode codiert ist und 2-byte-zeichen enthält (geschlossene umlaut, €, §, °, ², ³, µ siehe 8.9) wertet die funktion diese zeichen als zwei zeichen und zerreißt ggf. ein solches zeichen zu zwei nicht darstellbaren zeichen. Im Internet wurde die funktion wordwrap_utf8 gefunden, die mit diesen zeichen kein problem hat, ziemlich stur mit der angegebenen zeichenlänge zerlegt, dabe aber nicht immer ganz sauber zählt.

beispiel

Man beachte, wie von wordwrap das letzte wort zerlegt wird: der erste teil enthält scheinbar nur 7 zeichen, in wirklichkeit sind es aber 10, den die zeichen äöü sind jeweils 2-byte-zeichen. Weil die zeichen ÄÖÜ ebenfalls 2-byte-zeichen sind, liegt die trennstelle mitten in dem zeichen Ö, das in zwei schmierzeichen zerrissen wird.

1234567890
1234567890
xx yy zz
aaaaaaa
12äöüxx
890aaaaÄÃ
–Ãœaaa

Das beispiel beisp-7-1.php zeigt alles noch ein wenig ausführlicher und zudem auch mit der funktion wordwrap_utf8

beispiel ausführen

beispiel download


zum untermenü


    IMPRESSUM  

    KONTAKT  

    PRIVAT  

    D O K U  


  H T M L  
  C S S  
  p h p
  My S Q L  
  JAVASCRIPT